/*
* Copyright (c) 2016 ShopJsp. All Rights Reserved.
 * ============================================================================
 * 版权所有 2011 - 今 北京华宇盈通科技有限公司，并保留所有权利。
 * ----------------------------------------------------------------------------
 * 提示：在未取得SHOPJSP商业授权之前，您不能将本软件应用于商业用途，否则SHOPJSP将保留追究的权力。
 * ----------------------------------------------------------------------------
 * 官方网站：http://www.shopjsp.com
 * ============================================================================
*/
package com.hyyt.shopjsp.util.common;

import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Date;

public class Token {

 /**
 * @功能：根据key及id生成一个token
 * @作者:
 * @参数： @param key 设备号
 * @参数： @param id
 * @参数： @return
 * @返回值：String
 * @日期: 2016年1月29日 下午2:09:31
 */
public static String getToken(String key,Integer id){
	 Date createTime = new Date();
		//时间格式化
		SimpleDateFormat df = new SimpleDateFormat(EnumUtils.DataFormat.YMDHmsS.getValue());
		//当前时间被格式化后的字符串
		String createTimeStr = df.format(createTime);
		String token=key+"_"+id+"_"+createTimeStr;
	return token;

 }
 /**
 * @功能：根据旧的token生成一个新的token
 * @作者:
 * @参数： @param token
 * @参数： @return
 * @返回值：String
 * @日期: 2016年1月29日 下午2:09:02
 */
public static String getNewToken(String token){
	 String[] tokenArray=token.split("_");
	 Date createTime = new Date();
		//时间格式化
		SimpleDateFormat df = new SimpleDateFormat(EnumUtils.DataFormat.YMDHmsS.getValue());
		//当前时间被格式化后的字符串
		String createTimeStr = df.format(createTime);

		String newToken=tokenArray[0]+"_"+tokenArray[1]+"_"+createTimeStr;
	return newToken;

 }
 /**
 * @功能：通过token得到id
 * @作者:
 * @参数： @param token
 * @参数： @return
 * @返回值：String
 * @日期: 2016年1月29日 下午2:08:48
 */
public static String  getId(String token){
	 String[] tokenId=token.split("_");
	 String id=tokenId[1];
	return id;

 }
 /**
 * @功能：比较token是否可有效
 * @作者:
 * @参数： @param token
 * @参数： @return
 * @返回值：boolean true有效，false无效
 * @日期: 2016年1月29日 下午2:05:45
 */
 public static boolean compareToken(String token){

	String[] tokenArray=token.split("_");
	String time=tokenArray[2];
		String times=  (String) Utils.mapSystemConfig.get("tokenTime");
		Date date=new Date();
		//时间格式化
		SimpleDateFormat df = new SimpleDateFormat(EnumUtils.DataFormat.YMDHmsS.getValue());
		try {
			Date oldDate = df.parse(time);//旧时间
			String newDateStr=df.format(date);
			Date newDate=df.parse(newDateStr);//新时间
			long longTime= newDate.getTime()-oldDate.getTime();
			long longTimem=  longTime/1000/60;//计算分
			long compareTimes=Long.valueOf(times);
			/*if(longTimem>compareTimes){
				return false;
			}*/
//			System.out.println(longTime);
			//大于30秒
			if(longTime>120000){
				return false;
			}
		} catch (ParseException e) {
			e.printStackTrace();
		}
	return true;
 }

}
